鏈結串列(Linked List)常用來處理相同類型資料,在不連續
的記憶體位置,以隨機的方式儲存,由於不用事先宣告一塊連續記憶體空間,所以較不會造成記憶體的浪費。
由許多節點組成,每個節點包含資料欄
與指標欄
,指標欄會指向下一個資料所在的記憶體位置。因此再追加或刪除資料相當方便,因為只需要更動指標的指向
,但在讀取資料就會較費時,因為必須從串列的頭開始尋找。
可以想像一輛火車,透過掛勾將車廂一節一節地串起來,能夠依乘客需求多寡來使用掛勾更動車廂數量。
基本的鏈結串列結構,從串列頭(Head)開始依序指向下一筆資料,串列尾(Tail)為最後一筆資料指向空值(Null)。
只需要更動指標的指向。
每個節點會變成一個資料欄
與兩個指標欄
,讓資料可以從頭或尾巴開始找,優點是可以讓被破壞或遺失的節點被找回來,但在追加或刪除資料時,必須更動比單向鏈結串列更多的指標次數
。
在單向鏈結串列中,萬一某節點被破壞或遺失,整個串列將會沒作用,因此如果把串列最後一個節點指向串列頭,這樣每個節點都可以是串列頭
。
陣列的介紹可以參考此篇